import allure
import pytest

# 初始化夹具，生成浏览器，传递给登录用例
# session 是多个文件调用一次，可以跨.py文件调用，每个.py文件就是module


# 案例搜索
from config import Conf
from config.Conf import ConfigYaml
from utils.LogUtil import my_log
from utils.RequestsUtil import Request
from utils.YamlUtil import YamlReader


# 后续读取header
@pytest.fixture
def read_yml_header():
    # 返回conf.yml文件中的headers
    header_dict = YamlReader(Conf.get_config_file()).data()['BASE']['test']['header']  # 读取conf.yaml文件中的header
    my_log(__file__).info(f'读取conf.yml文件中的headers:{header_dict}')
    with allure.step('返回全局header-{}'.format(header_dict)):
        return header_dict


# 全局返回request对象
@pytest.fixture(scope="session")
def RQ():
    rq = Request(ConfigYaml().get_config_url())
    my_log(__file__).info('conftest文件中返回request对象')
    with allure.step('返回全局request对象'):
        return rq


# 全局返回headers和rq对象,时使用的夹具
@pytest.fixture
def QJ(read_yml_header, RQ):
    my_log(__file__).info('全局返回headers和rq对象')
    yield read_yml_header, RQ
